<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::ndt2d::NDT2D&lt; PointT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1ndt2d_1_1_n_d_t2_d.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="#pri-types">Private 类型</a> &#124;
<a href="classpcl_1_1ndt2d_1_1_n_d_t2_d-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::ndt2d::NDT2D&lt; PointT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>Build a <a class="el" href="structpcl_1_1_normal.html" title="A point structure representing normal coordinates and the surface curvature estimate....">Normal</a> Distributions Transform of a 2D point cloud. This consists of the sum of four overlapping models of the original points with normal distributions. The value and derivatives of the model at any point can be evaluated with the test (...) function.  
 <a href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="ndt__2d_8hpp_source.html">ndt_2d.hpp</a>&gt;</code></p>
<div class="dynheader">
类 pcl::ndt2d::NDT2D&lt; PointT &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1ndt2d_1_1_n_d_t2_d.png" alt=""/>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:ac85a7448e491a3e7bbba99f482af9375"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html#ac85a7448e491a3e7bbba99f482af9375">NDT2D</a> (PointCloudConstPtr cloud, const Eigen::Vector2f &amp;about, const Eigen::Vector2f &amp;extent, const Eigen::Vector2f &amp;step)</td></tr>
<tr class="separator:ac85a7448e491a3e7bbba99f482af9375"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8bef04c21a6db1db8dec5f758e0a87b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structpcl_1_1ndt2d_1_1_value_and_derivatives.html">ValueAndDerivatives</a>&lt; 3, double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html#ad8bef04c21a6db1db8dec5f758e0a87b">test</a> (const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;transformed_pt, const double &amp;cos_theta, const double &amp;sin_theta) const</td></tr>
<tr class="memdesc:ad8bef04c21a6db1db8dec5f758e0a87b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the 'score' (denormalised likelihood) and derivatives of score of the point p given this distribution.  <a href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html#ad8bef04c21a6db1db8dec5f758e0a87b">更多...</a><br /></td></tr>
<tr class="separator:ad8bef04c21a6db1db8dec5f758e0a87b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:addfa3f7f266087ebd11446c0b5e0a9d6"><td class="memItemLeft" align="right" valign="top"><a id="addfa3f7f266087ebd11446c0b5e0a9d6"></a>
boost::shared_ptr&lt; <a class="el" href="classpcl_1_1ndt2d_1_1_n_d_t_single_grid.html">SingleGrid</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>single_grids_</b> [4]</td></tr>
<tr class="separator:addfa3f7f266087ebd11446c0b5e0a9d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private 类型</h2></td></tr>
<tr class="memitem:a352061d62f9bbb7448b553ec6a80d9d7"><td class="memItemLeft" align="right" valign="top"><a id="a352061d62f9bbb7448b553ec6a80d9d7"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:a352061d62f9bbb7448b553ec6a80d9d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2c858e56b06b4d65e80e6d20fcbad81"><td class="memItemLeft" align="right" valign="top"><a id="ac2c858e56b06b4d65e80e6d20fcbad81"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:ac2c858e56b06b4d65e80e6d20fcbad81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad08f6d4d456eeaf6d66c43ab81b271b3"><td class="memItemLeft" align="right" valign="top"><a id="ad08f6d4d456eeaf6d66c43ab81b271b3"></a>
typedef <a class="el" href="classpcl_1_1ndt2d_1_1_n_d_t_single_grid.html">NDTSingleGrid</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SingleGrid</b></td></tr>
<tr class="separator:ad08f6d4d456eeaf6d66c43ab81b271b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointT&gt;<br />
class pcl::ndt2d::NDT2D&lt; PointT &gt;</h3>

<p>Build a <a class="el" href="structpcl_1_1_normal.html" title="A point structure representing normal coordinates and the surface curvature estimate....">Normal</a> Distributions Transform of a 2D point cloud. This consists of the sum of four overlapping models of the original points with normal distributions. The value and derivatives of the model at any point can be evaluated with the test (...) function. </p>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="ac85a7448e491a3e7bbba99f482af9375"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac85a7448e491a3e7bbba99f482af9375">&#9670;&nbsp;</a></span>NDT2D()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html">pcl::ndt2d::NDT2D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html">NDT2D</a> </td>
          <td>(</td>
          <td class="paramtype">PointCloudConstPtr&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector2f &amp;&#160;</td>
          <td class="paramname"><em>about</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector2f &amp;&#160;</td>
          <td class="paramname"><em>extent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector2f &amp;&#160;</td>
          <td class="paramname"><em>step</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">about</td><td>Centre of the grid for normal distributions model </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">extent</td><td>Extent of grid for normal distributions model </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">step</td><td>Size of region that each normal distribution will model </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        {</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;          Eigen::Vector2f dx (step[0]/2, 0);</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;          Eigen::Vector2f dy (0, step[1]/2);</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;          single_grids_[0] = boost::make_shared&lt;SingleGrid&gt; (cloud, about,        extent, step);</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;          single_grids_[1] = boost::make_shared&lt;SingleGrid&gt; (cloud, about +dx,    extent, step);</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;          single_grids_[2] = boost::make_shared&lt;SingleGrid&gt; (cloud, about +dy,    extent, step);</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;          single_grids_[3] = boost::make_shared&lt;SingleGrid&gt; (cloud, about +dx+dy, extent, step);</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="ad8bef04c21a6db1db8dec5f758e0a87b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8bef04c21a6db1db8dec5f758e0a87b">&#9670;&nbsp;</a></span>test()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpcl_1_1ndt2d_1_1_value_and_derivatives.html">ValueAndDerivatives</a>&lt;3,double&gt; <a class="el" href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html">pcl::ndt2d::NDT2D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::test </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>transformed_pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>cos_theta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>sin_theta</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the 'score' (denormalised likelihood) and derivatives of score of the point p given this distribution. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">transformed_pt</td><td>Location to evaluate at. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cos_theta</td><td>sin(theta) of the current rotation angle of rigid transformation: to avoid repeated evaluation </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sin_theta</td><td>cos(theta) of the current rotation angle of rigid transformation: to avoid repeated evaluation </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        {</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;          ValueAndDerivatives&lt;3,double&gt; r = ValueAndDerivatives&lt;3,double&gt;::Zero ();</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;          <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; 4; i++)</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;              r += single_grids_[i]-&gt;<a class="code" href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html#ad8bef04c21a6db1db8dec5f758e0a87b">test</a> (transformed_pt, cos_theta, sin_theta);</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;          <span class="keywordflow">return</span> r;</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1ndt2d_1_1_n_d_t2_d_html_ad8bef04c21a6db1db8dec5f758e0a87b"><div class="ttname"><a href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html#ad8bef04c21a6db1db8dec5f758e0a87b">pcl::ndt2d::NDT2D::test</a></div><div class="ttdeci">ValueAndDerivatives&lt; 3, double &gt; test(const PointT &amp;transformed_pt, const double &amp;cos_theta, const double &amp;sin_theta) const</div><div class="ttdoc">Return the 'score' (denormalised likelihood) and derivatives of score of the point p given this distr...</div><div class="ttdef"><b>Definition:</b> ndt_2d.hpp:337</div></div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>registration/include/pcl/registration/impl/<a class="el" href="ndt__2d_8hpp_source.html">ndt_2d.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><b>ndt2d</b></li><li class="navelem"><a class="el" href="classpcl_1_1ndt2d_1_1_n_d_t2_d.html">NDT2D</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
